//
//  Frame.hpp
//  markerARLib
//
//  Created by CADCG on 4/15/16.
//  Copyright © 2016 CvidKal. All rights reserved.
//

#ifndef Frame_hpp
#define Frame_hpp

#include <opencv2/opencv.hpp>
#include "Feature.hpp"
#include <vector>
#include "Config.hpp"
#include "FastWrapper.hpp"
#include "Basic Structure.h"
namespace markerAR
{
    
class Feature;
class Frame
{
public:
    Frame(){};
    Frame(const cv::Mat &img,const IntrinsicMatrix* K,const Pose &C);
    ~Frame();
    cv::Mat img;
    std::vector<Feature*> fts;
    void detectFastCorners();
    void extractPatch();
    void buildTable();
    void clear(){for(auto a:fts) delete a;fts.clear();};
    std::vector<Eigen::Matrix3d> Hnm;
    std::vector<const Marker*> markers;

//    cv::Matx33d  H;//Homography
    const IntrinsicMatrix* K;
    std::vector<Pose> C;
private:
};
}











#endif /* Frame_hpp */
